Alternative User-Interface

ABSTRACT

A system for programming a programmable device having an interface for a portable memory medium has an interactive interface executable on a stand-alone computer appliance for creating a program for the programmable device, a portable memory medium, and a downloading mechanism for transferring the created program to the portable memory medium.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is in the area of electronic devices and pertainsmore particularly to methods and apparatus for programming electronicdevices.

2. Discussion of the State of the Art

Modern electronic devices such as thermostats, cellular telephones, andlawn sprinklers, among many other such devices are typically programmedthrough an interface of programming inputs, including variouslypushbuttons, dials, and one or more displays located on the electronicdevice itself. This interface of programming inputs on the electronicdevice and the necessary apparatus between the inputs and an on-boardmemory storing an operating program is quite expensive. By someestimates the interface can approximate up to ⅔ of the manufacturingcosts. Besides being quite expensive these interface systems areconfusing and ineffective, and difficult for a user to operate properly.

Part of the problem is lack of space. A design engineer cannot design adevice to accommodate a sufficiently intuitive interface because thedevice would become too large and cumbersome. Instead, design engineersattempt to make their electronic devices as small and elegant andtherefore as inexpensive as possible. Consequently, design engineershave a small area on the device to work with: they must make theirprogrammable devices operational with as minimal an interface aspossible. This means that many of the inputs are consequentlymulti-functional. Hence, many inputs must represent two or morecompletely different functions or commands. Therefore, when a devicemust be programmed with an interface of multi-functional inputs, userscan become frustrated by endlessly attempting to make basic programmingcommands.

What is clearly needed is a method of divorcing the interface systemsfrom the electronic device itself and replacing the interface systemwith a more comprehensive and user-friendly alternative. By utilizing analternative method, separate from the programmable device, amanufacturer can conceivably make devices much more powerful by offeringconsumers a more variegated array of commands and options. Suchadvantages can make them more competitive in the marketplace as well.And more commands and more options means more power and moresatisfaction for both the manufacturer and the consumer.

SUMMARY OF THE INVENTION

In an embodiment of the present invention a system for programming aprogrammable device having an interface for a portable memory medium isprovided, comprising an interactive interface executable on astand-alone computer appliance for creating a program for theprogrammable device, a portable memory medium, and a downloadingmechanism for transferring the created program to the portable memorymedium.

In one embodiment the portable memory medium is a magnetic strip card,and the downloading mechanism is a magnetic strip writer connected tothe computer appliance. In another embodiment the portable memory mediumis a thumb drive having a USB male connector. In many embodiments thecomputer appliance is a personal computer (PC). The PC may be connectedto the Internet network, and the interactive interface may be providedby a Web site in the Internet network.

In some embodiments the interactive interface is read by the PC from aportable memory medium provided with the programmable device. In someembodiments the portable memory medium is a compact disk read-onlymedium (CD-ROM).

In some embodiments the system may comprise a programmable device havingan interface for the portable memory medium. In some cases the portablememory medium may be a magnetic strip card, and the interface may be amagnetic strip card writer. In other embodiments the portable memorymedium may be a thumb drive and the interface may be a female USB portfor receiving the male USB connector of the thumb drive.

In another aspect of the invention a programmable device is provided,wherein the entire programming interface comprises a port for receivinga portable memory device, and logic for reading a program from aportable memory device engaged at the port and for transferring thatprogram to an internal memory for execution.

In some embodiments the device is one of a lawn sprinkler controller, aVCR, a thermostat, or a cellular telephone. In some embodiments the portfor receiving is a female USB port for receiving a male USB connector ofa thumb drive. Also in some embodiments the port for receiving is amagnetic strip reader for reading a program from a magnetic strip card.

In yet another aspect of the invention a method for programming aprogrammable device is provided, comprising acts of (a) providing a soleprogramming interface for the device as a port for reading a portablememory medium and logic for transferring a program from the medium to aninternal memory of the device; (b) providing an interactive interfacefor creating a program for the programmable device, the interactiveinterface executable on a display of a computer appliance having adownloading mechanism for recording a program created on the portablememory medium; and (c) using the portable medium for transferring theprogram created to the programmable device.

In still another aspect of the invention a system for programming aprogrammable device having an interface for receiving a program isprovided, comprising an interactive interface executable on astand-alone computer appliance for creating a program for theprogrammable device, and a transmitter for transmitting the program tothe programmable device.

In one embodiment the transmitter is an infra-red transmitter and theinterface at the programmable device is an infra-red reader. In yetanother embodiment the transmitter is a magnetic loop transmitter andthe interface at the programmable device is a magnetic loop receiver. Instill another embodiment the transmitter is a radio frequency (RF)transmitter and the interface at the programmable device is an RFreceiver.

In various embodiments of the present invention taught in enablingdetail below, for the first time a system is provided whereinprogrammable devices may be designed and built without a complicateduser interface for adding a functional program, and more useful programsmay be created than have been possible in the state of the art at thetime of filing the present application.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

FIG. 1 is a block diagram of an apparatus according to an embodiment ofthe present invention.

FIG. 2 illustrates an interactive interface useful in programmingaccording to an embodiment of the present invention.

FIG. 3 illustrates another interactive interface useful in programmingaccording to an embodiment of the present invention.

FIG. 4 illustrates yet another interactive interface useful in anotherembodiment of the present invention.

DESCRIPTION OF PREFERRED EMBODIMENTS

According to a preferred embodiment of the present invention, a uniqueapparatus and method including software and a data transfer system isused to enable end-users to program VCR's, DVD's, sprinkler systems,security systems, thermostats, and other programmable devices using auser-friendly interface system through means of a personal computer. Themethod and apparatus of the present invention is described in enablingdetail below.

FIG. 1 is an illustration of a system according to a preferredembodiment of the present invention. In this example, device 101 is theelectronic device to be programmed, which may be any electronic devicethat requires user programming to be useful, such as a lawn sprinklercontroller, a VCR player, a cellular telephone, and the like. Device 101has a port 102 for accepting data and commands constituting a program toguide the device in performing its functions, which program, oncetransmitted to and accepted by the device, is caused to reside in adigital on-board memory 112 of the device. The term program is usedsomewhat broadly in this regard, and should be taken to mean any digitalinformation that needs to be entered to the programmable device to aidthe device in performing its intended functions.

Programmable devices, such as sprinkler controllers and the like, asmentioned above, typically have an on-board memory such as memory 112,and at least a microprocessor 116 to execute logic, such as programs tocause the device to execute its functions once programs. Port 102,memory 112 and microprocessor 116 in this embodiment all communicate onan internal bus 117, which may be, for example, a parallel bus. In thisembodiment device 101 is also enabled with logic 118, executable onprocessor 116, for handling incoming programming data.

The overall system in an embodiment also includes a computer 103 usedfor initial preparation of the program for the programmable device. Inthis particular embodiment computer 103 accesses an Internet server (Website) 104 in the Internet network 105 for a programming system to aid increating a program for device 101. Server 104 is connected to a datarepository 109 which may be a separate database accessible by theWebsite or a part of the website. Data repository 109 stores programsand data useful for a user of computer 103 to program device 101. It isnot specifically required that a computer 103 be used to access theInternet. In alternative embodiments, a television set or othercomputerized appliance may be equally expedient for accessing theInternet and performing the programming function for device 101.

In the embodiment illustrated by FIG. 1 server 104 executes software 106providing an interactive interface 107 on a video display of computer103, whereby the user may input information and make selections tocreate a program for device 101. In a preferred embodiment device 101 isprovided by a manufacturer and sold perhaps through a third-partyreseller. Instructions accompany the device for a user to access server104, operated by or on behalf of the manufacturer of device 101 and thereseller of the device. Further examples of user interfaces andprogramming of a separate device 101 through computer 103 (or similarappliance) are provided below in this specification.

After complete instructions have been entered through user interface107, creating data and commands for a program useful by device 101, itis needed to transfer the program to device 101. There are a relativelywide choice of ways in different embodiments of the invention toaccomplish the data transfer. For example, in one embodiment, once aprogram is created on computer 103 for device 101 the program may bedownloaded through an optional magnetic strip writer 110, which mayconnect to computer 103 by a USB port, a standard serial port, or insome other way. In this particular embodiment port 102 is a magneticstrip reader, and to transfer a prepared program from computer 103 todevice 101, the user swipes magnetic strip card 111 through writer 110,and then through reader 102. Reader 102 with the aid of logic 118executing on processor 116 of device 101 stores the program in on-boardmemory 112 in device 101. Logic 118 enables port 102 to recognizeincoming data, and processes and stores the program in an appropriatemanner, so the program is enabled to serve in subsequent operation ofdevice 101.

In an alternative embodiment the mechanism for program transfer is athumb drive 113 which is plugged into a USB port of computer 103,allowing the user to transfer the prepared program to thumb drive 113.In this case port 102 is a USB port, and the user simply plugs thumbdrive 113 into USB port 102, which engagement is recognized by logic118, which causes the prepared program to load appropriately into memory112.

In other embodiments other data transfer mechanisms may be used. Forexample, element 110 may be an infra-red transmitter connected tocomputer 103 rather than a magnetic strip writer, in which case port 102will be an infra-red receiver port, and there may be a code sequence tosignal to logic 118 that following code in infrared transmission is aprogram to be loaded. In another embodiment RF transmission may be used,in which case element 110 is an RF transmitter, and logic 118 willrecognize appropriate code to load a program being transmitted. In yetanother embodiment a magnetic loop driver may be provided in place ofwriter 110, which is a relatively simple device which transmits data asvariations in a magnetic field, in which case port 102 will be amagnetic loop reader. This magnetic loop technology is essentially thesame as is used for wireless pointer devices and keyboards, for example.

With respect to the thumbdrive embodiment, where the thumb drive isrepresented by element 113 of FIG. 1, it is known to the inventor thatthe amount of memory necessary to program an electronic device isrelatively small. It will not be necessary for a thumbdrive 201 to havein most cases more than 50 Kilobytes of memory. Thumbdrives as known inthe art typically, however, have 256 megabytes or more of memory.However, the amount of memory of a thumbdrive 201 is not a specificlimitation in the invention. The amount of memory necessary for thethumbdrive 201 will largely be dictated by economic factors rather thanmeeting a minimum memory threshold.

In another embodiment of the present invention, computer 103 has aCD-ROM drive 114, and a compact disk (CD) 115 is provided with theprogrammable device upon purchase. In this case CD 115 provides theinteractive user interface 107 and all necessary software for a user tointeract and do the necessary programming on the PC. In this embodiment,instead of using computer 103 to access a program on a website 104 onthe Internet, a CD-ROM drive 114 and accompanying CD 115 are used inlieu of the website 104. CD 115 contains the program interface 105through which the user may program the device. The operational detailsof how to develop a program interface 105 by which to program theelectronic device is within the ordinary skill of an artisan in the art.Again, there is no general limitation that computer 103 be used toaccess only the Internet or a CD 402. The computer 103 may be used toaccess another alternative medium, as well.

In addition, CD 115 may come with installation instructions. Once theuser accesses interface 107, the program may tell user how to mount orinstall the electronic device, what size batteries are required for theelectronic device, warranties, and other boilerplate provisions. Theinstructions may also give a telephone number to contact a customersupport hotline for the product. In addition, interface 107 may alsorefer user to a website. For instance, “For more details on how toprogram sprinkler system please visit our website atwww.grass-genie.com”.

FIG. 2 illustrates at least in part an exemplary user interface 107 foruse in programming a control device 101 in the case that the controldevice is a lawn sprinkler. In this example interface 107 displays adiagram 201 allowing a user to set time and day for watering. Row 202 ofthe diagram lists the days of the week, and column 203 indicatestime-of-day in thirty minute increments. Times are indicated frommidnight to 5:00 AM, but typically the entire twenty-four hours may beindicated. Therefore each intersection block 204 represents a 30 minuteincrement on a particular day.

In this example a user may activate a block 204 by moving cursor 205 tothe block and selecting with the left mouse button (or other pointerinput). When a block 204 is activated, it shows in a first color, suchas green. When not activated, no block is shown. This embodiment assumesthat watering is to take place for a minimum of at least thirty minutes.If other time periods are preferred, there are a number of ways suchgranularity may be accommodated, such as by a different diagram for,say, fifteen minute intervals or one hour intervals, or there might befunctionality for entering a portion of an interval when a block isselected, for example.

After the user is satisfied with the watering program, the selectionsmay be saved by selecting Save button 206. Once a program is saved itmay be transferred to a portable memory device for transfer to aprogrammable device, or transmitted by one or another of the methodsdescribed above.

FIG. 3 illustrates another exemplary diagram that may be displayed oninterface 107 showing zones for a lawn 300 to be watered. The “C” shapeof lawn 300 in this example is selected from a menu of shapes from whichthe user may select. In addition to a variety of shapes from which auser may select to approximate his/her own lawn, there may also be aprocess for a user to draw the shape of the lawn. In this particularlayout lawn 300 comprises 3 zones: A, B, and C (301, 302, and 303respectively). The user may, for example, program watering for zone 301to activate from 5-7:am using program interface 107. Likewise, he mayprogram both zones 302 and 303 to activate from 6-8:pm. In this mannerconsiderable granularity may be provided for a user to program asprinkler system.

The skilled artisan will recognize that the interactive interface andtools provided for a user to program a lawn sprinkler, or any otherprogrammable device, may vary widely from the example shown. There aremany possibilities.

FIG. 4 is another example of a website interface 107, showing aninteractive diagram 400 in this case for programming a thermostat. Row401 in this example lists the days of the week, while column 402 liststhe time-of-day in 15 minute increments. Blocks 403 may be selected toprovide programming for that day and time for either heating or airconditioning.

In addition to the above, when the user selects a block, a defaulttemperature is displayed, which may be, for example, 65 degreesFahrenheit. The user is enabled to edit the temperature number in theblock in the came manner that one edits text in a word processingprogram, using the keyboard. Alternatively, a drop-down menu may bedisplayed from which the user may select different temperatures.

It will be apparent to the skilled artisan that there are a number ifdifferent ways that temperatures may be set, and further granularity maybe provided in time and temperature increments.

It is not specifically required that the user-friendly interface indifferent embodiments of the invention be provided through a personalcomputer. Other sorts of computer appliances may be used, such as apersonal digital assistant. In another embodiment of the invention auser may use a telephone operator or other service person as theinterface itself. A user may simply tell the service person theinstructions, and then the service person will transfer information tosuch as thumbdrive 201 or magnetic strip card 202. The service personthen mails are otherwise delivers the portable memory to the user, andthe user will then use this thumbdrive 201 or magnetic strip card 202 toprogram his electronic device.

An object of the present invention is to provide for programming aprogrammable device using a computer or other relatively robustappliance, and then to provide for easily an relatively simplytransferring the program to the device, which may be remote from thedevice. A lawn sprinkler controller, for example, will not normally beinstalled in a user's study next to the user's computer. For thisreason, in preferred embodiments, a transfer mechanism, typically aportable memory medium such as a thumb drive or a magnetic strip card isused, so the program can be relatively easily transferred from thecomputer to the programmable device. Further, in preferred embodiment,the transfer memory device may be a repository for the program, so theprogram may be rather easily re-entered to the programmable device ifonce lost. Many devices, for example, are battery powered, and if thebatteries fail the programming may be lost.

It will be apparent to the skilled artisan that there are numerouschanges that may be made in embodiments described herein withoutdeparting from the spirit and scope of the invention. As such, theinvention taught herein by specific examples is limited only by thescope of the claims that follow.

1-19. (canceled)
 20. A method for programming amicroprocessor-controlled device, comprising the steps of: (a)executing, from a machine-readable medium, a programming application ona computerized appliance distinct from the microprocessor-controlleddevice, the application providing an interactive display enabling inputof functions and parameters for the microprocessor-controlled device;(b) entering through the interactive display functions and parametersfor the microprocessor-controlled device; (c) saving the functions andparameters entered to a digital memory device coupled to thecomputerized appliance; (d) uncoupling the digital memory device fromthe computerized appliance; (e) coupling the digital memory device tothe microprocessor-controlled device; and (f) uploading the functionsand parameters to the microprocessor-controlled device.
 21. The methodof claim 20 wherein the digital memory device is a thumb drive coupledto the computerized appliance by USB connectors, and the microprocessorcontrolled device has a compatible USB interface for connection.
 22. Themethod of claim 20 wherein the computerized appliance is a personalcomputer.
 23. The method of claim 20 wherein the microprocessorcontrolled device is a controller for a system having mechanicalfunctions that may be started and stopped by time-of-day (TOD).
 24. Themethod of claim 23 wherein the system is a sprinkler system, and thefunctions and parameters are the mechanical functions of the system andthe TOD for starting and stopping the functions.
 25. The method of claim20 wherein the microprocessor controlled device is enabled to upload thefunctions and parameters automatically upon detecting coupling of thedigital memory device to the microprocessor controlled device.